/*
   FieldVis - A Tool for Visualizing Astrophysical Magnetohydrodynamic Flow
   
   Copyright (C) 2006 - 2008     FieldVis Development Team
  
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
  
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
  
   You should have received a copy of the GNU General Public License along
   with this program; if not, write to the Free Software Foundation, Inc.,
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

   File        : Animation.h
   Author      : Jeremy Moc  (mocj@msi.umn.edu)

   Description : Object controlling the animation capabilities in the
                 main client window.
*/
#ifndef ANIMATION_H
#define ANIMATION_H

#include <iomanip>
#include <sstream>
#include <string>


class Animation
{
public:
   enum AnimationState { INACTIVE, REQUESTED, ACTIVE };
   
   Animation()
      : state_(INACTIVE), frameNumber_(0), totalFrames_(0)
      { }

   void setState(AnimationState s)  { state_ = s; }
   AnimationState getState()        { return (state_); }
   int getFrameNumber()             { return (frameNumber_); }
   int getTotalFrames()             { return (totalFrames_); }
   void resetFrameNumber()          { frameNumber_ = 0; }

   void SetUp(const std::string &base, const int frames);

   std::string GetFilename();

private:

   AnimationState state_;
   int frameNumber_;
   int totalFrames_;
   
   std::string baseName_;
};

#endif

